<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>更新页面</title>
        <link rel="stylesheet" href="/app/admin/component/pear/css/pear.css" />
        <link rel="stylesheet" href="/app/admin/admin/css/reset.css" />
    </head>
    <body>

        <form class="layui-form">

            <div class="mainBox">
                <div class="main-container mr-5">
                    
                    <div class="layui-form-item">
                        <label class="layui-form-label">位置</label>
                        <div class="layui-input-block">
                            <div name="position_id" id="position_id" value="" ></div>
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label">图片地址</label>
                        <div class="layui-input-block">
                            <img class="img-3" src=""/>
                            <input type="text" style="display:none" name="img_url" value="" />
                            <button type="button" class="pear-btn pear-btn-primary pear-btn-sm" id="image" permission="app.admin.upload.file">
                                <i class="layui-icon layui-icon-upload"></i>上传
                            </button>
                            <button type="button" class="pear-btn pear-btn-primary pear-btn-sm" id="attachment-choose-image" permission="app.admin.upload.attachment">
                                <i class="layui-icon layui-icon-align-left"></i>选择
                            </button>
                        </div>
                    </div>
                    
                    <div class="layui-form-item">
                        <label class="layui-form-label">链接地址</label>
                        <div class="layui-input-block">
                            <div name="link" id="link" value="" ></div>
                        </div>
                    </div>

                    <div id="params"></div>
                    
                    <div class="layui-form-item">
                        <label class="layui-form-label">排序(越小越靠前)</label>
                        <div class="layui-input-block">
                            <input type="number" name="sort" value="" class="layui-input">
                        </div>
                    </div>
                    
                    <div class="layui-form-item">
                        <label class="layui-form-label">是否显示</label>
                        <div class="layui-input-block">
                            <input type="checkbox" name="is_show" id="is_show" class="layui-input" lay-skin="switch">
                        </div>
                    </div>
                    
                </div>
            </div>

            <div class="bottom">
                <div class="button-container">
                    <button type="submit" class="pear-btn pear-btn-primary pear-btn-md" lay-submit="" lay-filter="save">
                        提交
                    </button>
                    <button type="reset" class="pear-btn pear-btn-md">
                        重置
                    </button>
                </div>
            </div>
            
        </form>

        <script src="/app/admin/component/layui/layui.js"></script>
        <script src="/app/admin/component/pear/pear.js"></script>
        <script src="/app/admin/admin/js/permission.js"></script>
        
        <script>

            // 相关接口
            const PRIMARY_KEY = "id";
            const SELECT_API = "/app/admin/banner/select" + location.search;
            const UPDATE_API = "/app/admin/banner/update";

            // 获取数据库记录
            layui.use(["form", "util", "popup"], function () {
                let $ = layui.$;
                let disabled = false;
                $.ajax({
                    url: SELECT_API,
                    dataType: "json",
                    success: function (res) {
                        
                        // 给表单初始化数据
                        layui.each(res.data[0], function (key, value) {
                            let obj = $('*[name="'+key+'"]');
                            if (key === "password") {
                                obj.attr("placeholder", "不更新密码请留空");
                                return;
                            }
                            if (key == 'params') {
                                console.log()
                                renderParams(value)
                                return;
                            }

                            if (typeof obj[0] === "undefined" || !obj[0].nodeName) return;
                            if (obj[0].nodeName.toLowerCase() === "textarea") {
                                obj.val(value);
                            } else {
                                obj.attr("value", value);
                            }

                            if (key == 'is_show' && value == 1) {
                                obj.prop('checked', true)

                            }



                            if (key == 'link' && res.data[0]['can_edit_link'] == 0) {
                                obj.attr('readonly', true)
                                obj.attr('disabled', true);
                                disabled = true
                            }
                        });

                        // 字段 类别 category
                        layui.use(["jquery", "xmSelect"], function() {
                            layui.$.ajax({
                                url: "/app/admin/banner-position/get",
                                dataType: "json",
                                success: function (res) {
                                    let value = layui.$("#position_id").attr("value");
                                    let initValue = value ? value.split(",") : [];
                                    layui.xmSelect.render({
                                        el: "#position_id",
                                        name: "position_id",
                                        initValue: initValue,
                                        data: res.data,
                                        model: {"icon":"hidden","label":{"type":"text"}},
                                        clickClose: true,
                                        radio: true,
                                        disabled: disabled
                                    });
                                    if (res.code) {
                                        return layui.popup.failure(res.msg);
                                    }
                                }
                            });
                        });

                        layui.use(["jquery", "xmSelect"], function() {
                            layui.$.ajax({
                                url: "/app/admin/page/get",
                                dataType: "json",
                                success: function (res) {
                                    let value = layui.$("#link").attr("value");
                                    let initValue = value ? value.split(",") : [];
                                    layui.xmSelect.render({
                                        el: "#link",
                                        name: "link",
                                        initValue: initValue,
                                        data: res.data,
                                        model: {"icon":"hidden","label":{"type":"text"}},
                                        clickClose: true,
                                        radio: true,
                                        filterable: true,
                                        on: function(data) {
                                            let params = data.arr[0].params;

                                            if (params != null && params !== '') {
                                                params = params.split(',')

                                                let html = '';
                                                for (let i in params) {
                                                    html += '<div class="layui-form-item">\n' +
                                                        '                        <label class="layui-form-label">' + params[i] +  '=</label>\n' +
                                                        '                        <div class="layui-input-block">\n' +
                                                        '                            <input type="text" name="params[' + params[i] + ']" value="" class="layui-input">\n' +
                                                        '                        </div>\n' +
                                                        '                    </div>';
                                                }

                                                $('#params').html(html)
                                            }
                                        }
                                    });
                                    if (res.code) {
                                        return layui.popup.failure(res.msg);
                                    }
                                }
                            });
                        });

                        // image
                        let input = $("#image").prev();
                        input.prev().attr("src", input.val());
                        layui.$("#attachment-choose-image").on("click", function() {
                            parent.layer.open({
                                type: 2,
                                title: "选择附件",
                                content: "/app/admin/upload/attachment?ext=jpg,jpeg,png,gif,bmp",
                                area: ["95%", "90%"],
                                success: function (layero, index) {
                                    parent.layui.$("#layui-layer" + index).data("callback", function (data) {
                                        input.val(data.url).prev().attr("src", data.url);
                                    });
                                }
                            });
                        });
                        layui.upload.render({
                            elem: "#image",
                            url: "/app/admin/upload/image",
                            acceptMime: "image/gif,image/jpeg,image/jpg,image/png",
                            done: function (res) {
                                if (res.code) {
                                    return layui.popup.failure(res.msg);
                                }
                                this.item.prev().val(res.data.url).prev().attr("src", res.data.url);
                            }
                        });
                        
                        
                        // ajax返回失败
                        if (res.code) {
                            layui.popup.failure(res.msg);
                        }

                        layui.form.render()
                    }
                });
            });

            layui.use(['upload'], function() {
                let input = layui.$("#ae3id").prev();
                input.prev().html(layui.util.escape(input.val()));
                layui.$("#attachment-choose-ae3id").on("click", function() {
                    parent.layer.open({
                        type: 2,
                        title: "选择附件",
                        content: "/app/admin/upload/attachment",
                        area: ["95%", "90%"],
                        success: function (layero, index) {
                            parent.layui.$("#layui-layer" + index).data("callback", function (data) {
                                input.val(data.url).prev().html(layui.util.escape(data.url));
                            });
                        }
                    });
                });
            });
            layui.upload.render({
                elem: "#ae3id",
                url: "/app/admin/upload/file",
                accept: "file",
                field: "__file__",
                done: function (res) {
                    this.item.prev().val(res.data.url).prev().html(layui.util.escape(res.data.url));
                }
            });

            //提交事件
            layui.use(["form", "popup"], function () {
                // 字段验证允许为空
                layui.form.verify({
                    phone: [/(^$)|^1\d{10}$/, "请输入正确的手机号"],
                    email: [/(^$)|^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/, "邮箱格式不正确"],
                    url: [/(^$)|(^#)|(^http(s*):\/\/[^\s]+\.[^\s]+)/, "链接格式不正确"],
                    number: [/(^$)|^\d+$/,'只能填写数字'],
                    date: [/(^$)|^(\d{4})[-\/](\d{1}|0\d{1}|1[0-2])([-\/](\d{1}|0\d{1}|[1-2][0-9]|3[0-1]))*$/, "日期格式不正确"],
                    identity: [/(^$)|(^\d{15}$)|(^\d{17}(x|X|\d)$)/, "请输入正确的身份证号"]
                });
                layui.form.on("submit(save)", function (data) {
                    data.field[PRIMARY_KEY] = layui.url().search[PRIMARY_KEY];
                    layui.$.ajax({
                        url: UPDATE_API,
                        type: "POST",
                        dateType: "json",
                        data: data.field,
                        success: function (res) {
                            if (res.code) {
                                return layui.popup.failure(res.msg);
                            }
                            return layui.popup.success("操作成功", function () {
                                parent.refreshTable();
                                parent.layer.close(parent.layer.getFrameIndex(window.name));
                            });
                        }
                    });
                    return false;
                });


            });



            function renderParams(params) {
                let html = '';
                let $ = layui.$;
                for (let i in params) {
                    html += '<div class="layui-form-item">\n' +
                        '                        <label class="layui-form-label">' + i +  '=</label>\n' +
                        '                        <div class="layui-input-block">\n' +
                        '                            <input type="text" name="params[' + i + ']" value="' + params[i] +  '" class="layui-input">\n' +
                        '                        </div>\n' +
                        '                    </div>';
                }

                $('#params').html(html)
            }

        </script>

    </body>

</html>
